/*
============================================================================
 Name        : pd_gui.h
 Author      : Jian(raphyer@hotmail.com)
 Version     :
 Copyright   : GPL
 Description : pd_gui.h - header file
============================================================================
*/

#ifndef PD_GUI_H
#define PD_GUI_H

#include "dd_define.h"
#include "dd_ui_base.h"
#include "pd_image.h"
#include "pd_font.h"


__DD_BEGIN_DECLS

typedef struct __pd_gc { 
    char dummy;
} pd_gc;


typedef enum __pd_gc_type{
    PD_MAIN_GC   = 0, 
    PD_BACKUP_GC
} pd_gc_type;


pd_gc* pd_gc_create(pd_gc_type type) ;

void pd_gc_destroy(pd_gc* gc) ;

void pd_gc_activate(pd_gc* gc) ;

void pd_gc_deactivate(pd_gc* gc) ;

void pd_gc_flush(pd_gc* gc) ;

void pd_set_font(pd_gc* gc, pd_font* font) ;

void pd_unset_cur_font(pd_gc* gc, pd_font* cur_font) ;

void pd_draw_text(pd_gc* gc, dd_pos pos, const DD_UNICODE* text, DD_UINT text_len, dd_color color) ;

void pd_draw_image(pd_gc* gc, dd_pos pos, pd_image* image) ;

void pd_draw_rect(pd_gc* gc, dd_rect rect, dd_size angle, dd_color color) ;

void pd_draw_border(pd_gc* gc, dd_rect rect, dd_size angle, dd_color color) ;

void pd_draw_line(pd_gc* gc, dd_pos pos1, dd_pos pos2, dd_color color) ;

void pd_merge_gc(pd_gc* bg_gc, pd_gc* front_gc, dd_rect rect, DD_UINT8 transparent) ;


__DD_END_DECLS

#endif  /* PD_GUI_H */

/* End of File */
